"""
用户工具函数
"""
from .models import AdminActionLog


def log_admin_action(admin, action, target_type, target_id=None, target_name=None, 
                     description='', request=None):
    """
    记录管理员操作日志
    
    Args:
        admin: 管理员用户对象
        action: 操作类型（create, update, delete, export, import, toggle, approve, reject, other）
        target_type: 目标类型（如：景点、用户、动态）
        target_id: 目标ID（可选）
        target_name: 目标名称（可选）
        description: 操作描述（可选）
        request: HTTP请求对象（可选，用于获取IP和User-Agent）
    """
    ip_address = None
    user_agent = ''
    
    if request:
        # 获取IP地址
        x_forwarded_for = request.META.get('HTTP_X_FORWARDED_FOR')
        if x_forwarded_for:
            ip_address = x_forwarded_for.split(',')[0]
        else:
            ip_address = request.META.get('REMOTE_ADDR')
        
        # 获取User-Agent
        user_agent = request.META.get('HTTP_USER_AGENT', '')[:500]  # 限制长度
    
    AdminActionLog.objects.create(
        admin=admin,
        action=action,
        target_type=target_type,
        target_id=target_id,
        target_name=target_name,
        description=description,
        ip_address=ip_address,
        user_agent=user_agent
    )









